/*****************************/
/**  ユーティリティー系関数 		 */
/*****************************/

/**
 * 改行コードを改行タグに変換する
 *
 * @param 	txt 	置換対象の文字列
 * @return 	txtVal 	置換後の文字列
 */
function replaceBR(txt) {
	var txtVal;
	//txtVal = txt.replace(/\r\n/g, "<br />");
	txtVal = txt.replace(/(\n|\r)/g, "<br />");
	return txtVal;
}
/**
 * 分割された日付をY-m-d形式に変換する
 * @param y 年
 * @param m 月
 * @param d 日
 * @return 「y-m-d」
 */
function editYmd (y, m, d) {
	// 「-」を追加し返却
	return y + '-' + m + '-' + d;
}
/**
 * 実在日チェックを行う
 * @param 	month 		月
 * @param 	day			日
 * @param 	year		年
 * @returns {Boolean}	チェック結果
 */
function checkdate(month, day, year) {
    var dd = new Date(year, month - 1, day);
    if (year != dd.getFullYear() || month != dd.getMonth() + 1 || day != dd.getDate()) return false;
    return true;
}
/**
 * 必須項目チェックを行う
 * @param 	text 		入力値
 * @returns	{Boolean}	チェック結果
 */
function checkRequiredInput(text) {
	if (text == null || text == '') {
		return false;
	}
	return true;
}
/**
 * 半角数値および桁数チェックを行う
 * 桁数：２桁
 * @param 	text		チェック対象の文字列
 * @returns {Boolean}	チェック結果
 */
function checkHalfNumAndDigits(text) {
	if (text.match(/[0-9]{1,2}/)) {
		return true;
	} else {
		return false;
	}
}
/**
 * 半角英数字および桁数チェック
 * 桁数：１６または２０桁
 * @param 	text		チェック対象の文字列
 * @param 	maxLength	16 or 20
 * @returns {Boolean}	チェック結果
 */
function checkHalfChar(text, maxLength) {
	if (maxLength == 16) {
		if (text.match(/[a-zA-Z0-9]{6,16}/)) {
			return true;
		} else {
			return false;
		}
	}
	if (maxLength == 20) {
		if (text.match(/[a-zA-Z0-9]{6,20}/)) {
			return true;
		} else {
			return false;
		}
	}
}
/**
 * サイト表示・管理者情報変更の単項目チェックを行う
 * @param elementId		要素ID
 */
function checkUserInfoValue(elementId) {
	if (elementId == 'editNewInfoLimit') {
		$('#new_info_limit_err').text('');
		value = $('#new_info_limit').val();
		checkRequire = checkRequiredInput(value);
		if (!checkRequire) {
			$('#new_info_limit_err').text('表示件数が未入力です。');
			return false;
		} else {
			checkHalfNum = checkHalfNumAndDigits(value);
			if (!checkHalfNum) {
				$('#new_info_limit_err').text('入力できるのは半角数字2桁のみです。');
				return false;
			}
		}
	} else if (elementId == 'editCampaignInfoLimit') {
		$('#campaign_info_limit_err').text('');
		value = $('#campaign_info_limit').val();
		checkRequire = checkRequiredInput(value);
		if (!checkRequire) {
			$('#campaign_info_limit_err').text('表示件数が未入力です。');
			return false;
		} else {
			checkHalfNum = checkHalfNumAndDigits(value);
			if (!checkHalfNum) {
				$('#campaign_info_limit_err').text('入力できるのは半角数字2桁のみです。');
				return false;
			}
		}
	} else if (elementId == 'editUserInfo') {
		$('#user_id_err').text('');
		$('#password_err').text('');
		userIdValue = $('#username').val();
		passWdValue = $('#password').val();
		checkFlg = true;
		if (!checkRequiredInput(userIdValue)) {
			$('#user_id_err').text('ユーザIDが未入力です。');
			checkFlg = false;
		}
		if (!checkRequiredInput(passWdValue)) {
			$('#password_err').text('パスワードが未入力です。');
			checkFlg = false;
		}
		if (!checkFlg) {
			return checkFlg;
		} else {
			if (!checkHalfChar(userIdValue, 20)) {
				$('#user_id_err').text('入力できるのは半角英数字6〜20文字です。');
				checkFlg = false;
			}
			if (!checkHalfChar(passWdValue, 16)) {
				$('#password_err').text('入力できるのは半角英数字6〜16文字です。');
				checkFlg = false;
			}
			alert(checkFlg);
			return checkFlg
		}
	}
	return true;
}

/**
 * 各種表示をリセットする
 */
function resetAll() {
	// 登録ボタンを表示
	$('#resistInfoBtn').show();
	// 入力フォームを新規登録表記に
	$('#updType').html('新規登録');
	// 編集ボタンを隠す
	$('#editNewInfoBtn').hide();
	// やり直しボタンを隠す
	$('#previewCanBtn').hide();
	// コンテンツを消去
	$(".cleditorMain iframe").contents().find('body').html('').focus();
	// 入力フォームまでスクロール
	scrollToTarget('#newInfoInputBlock', 500);
	// プレビューが表示されている場合
	if(!$('#previewContent').is(':hidden')) {
		// プレビューを隠す
		$('#previewContent').slideUp('fast');
		// 公開設定を隠す
		$('#publish_btns').hide();
		// プレビューボタンを表示
		$('#previewBtn').show();
		// 登録／更新ボタンを隠す
		$('#infoBtns').hide();
	}
}
/*****************************/
/**  画面アクション系関数 		 */
/*****************************/
/**
 * モーダルダイアログを表示する
 */
function confirmblockUI(id_name) {
	$.blockUI({ message : $(id_name),
		fadeIn  : 300,
		showOverlay: false,
		css: {
				width: '240px',
				height: '76px',
				textAlign: 'center',
				padding: '20px',
				backgroundColor: '#000',
				'-webkit-border-radius': '10px',
				'-moz-border-radius': '10px',
				opacity: .8,
				color: '#fff'
		}
	});
}
/**
 * 指定の位置にスクロールする
 */
function scrollToTarget(targetId, speed) {
	var target = $('body,html');
	// ターゲット位置までスクロールする
	target.animate({ scrollTop: $(targetId).offset().top},speed);
}
/**
 * スクロールの位置に応じて
 * スクロールボタンを表示する。
 */
$(function() {
    var topBtn = $('#page-top');
    var dataListBtn = $('#dataList-top');
    topBtn.hide();
    //スクロールが100に達したらボタン表示
    $(window).scroll(function () {
    	if($("body").height() > 800 ) {
	        if ($(this).scrollTop() > 140) {
	            topBtn.fadeIn();
	            dataListBtn.fadeOut();
	        } else {
	            topBtn.fadeOut();
	            dataListBtn.fadeIn();
	        }
    	}
    });
    //スクロールしてトップ
    topBtn.click(function () {
        $('body,html').animate({
            scrollTop: 0
        }, 500);
        return false;
    });
    dataListBtn.click(function(){
    	 $('body,html').animate({
             scrollTop: $('#dataListBlock').offset().top
         }, 500);
         return false;
    });
});
/**
 * 送信演出を行い更新
 * 引数で受け取ったメソッドを呼び出す
 * @param method
 */
function sendingAction (method) {
	// 送信状態を演出
	$('#sendingMsg').text('送信中').fadeIn(500,function(){
		$(this).fadeOut(500,function(){
			$(this).fadeIn(500,function(){
				// 演出終了後にメソッドをcallする
				$(this).fadeOut(500,function(){method();});
			});
		});
	});
	$.timeout = function(time) {
		return $.Deferred(function(dfd) {
			setTimeout(dfd.resolve, time);
		}).promise();
	};
}